iT邦幫忙

2025 iThome 鐵人賽

DAY 5
0
Modern Web

Laravel 30天速成筆記系列 第 5

【Day5】Controller 與 Request

  • 分享至 

  • xImage
  •  

昨天我們學會用路由(Routing)設定網址和功能了,但如果把所有功能都直接寫在 routes/web.php,到後面寫久了會變得很亂,也不方便維護!


為什麼要用 Controller?

你可以把 Controller 想成「餐廳的服務生」:

  • 路由負責接客人點菜(網址)
  • Controller 接到訂單後,告訴廚房要做什麼(呼叫程式邏輯)
  • 最後把餐點送到客人桌上(回應給user)

這樣每個角色分工清楚,程式就不會全部都擠在一起!


建立 Controller

Laravel 提供指令快速建立 Controller,例如:

php artisan make:controller HelloController

會在app/Http/Controllers/ 裡生成一個 HelloController.php


在 Controller 寫方法

打開 HelloController.php,加上:

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class HelloController extends Controller
{
    public function index()
    {
        return 'Hello from Controller!';
    }
}

路由連到 Controller

編輯 routes/web.php

use App\Http\Controllers\HelloController;

Route::get('/hello', [HelloController::class, 'index']);

這代表:
訪問 /hello

Laravel 會去找 HelloController 的 index() 方法執行


Request 是什麼?

Request 就像「客人的點單」,包含客人送來的所有資料(表單輸入、網址參數等)
例如:接收表單輸入

public function greet(Request $request)
{
    $name = $request->input('name');
    return "你好,$name!";
}

搭配路由:

Route::post('/greet', [HelloController::class, 'greet']);

小結

  • Controller:讓功能有專屬的家,程式更整齊
  • Request:接收使用者傳來的資料
  • 路由 → Controller → 回應,讓網站架構更清楚

上一篇
【Day4】認識路由(Routing)基礎
下一篇
【Day6】Blade 模板引擎
系列文
Laravel 30天速成筆記10
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言